This invention relates generally to the field of printer control and, more particularly, to printer control in which multiple pages are printed on a sheet.
Prior to the introduction of laser printers, printing document files generated by computer was relatively simple using contact printing. Contact printers support a character set having a fixed number of characters. The slow speed with which the conventional dot matrix or contact printers provided output information made high-speed communication with the printers unnecessary.
High-speed laser printers print photographic quality images by methods such as raster scanning by making use of a high-resolution printing technique known as bit mapping. A bit map for a graphics image comprises a two dimensional array of data known as picture elements, or pixels, which constitute the image. In order to print an image, the print engine of a laser printer must receive a large amount of data corresponding to a bit map for each image produced.
Laser printing exposed major flaws in other slow methods of outputting print information. That is, programs which output documents or files to be printed conventionally generate all the information for the print engine to use in printing out the image. This requires the generation of large amounts of data in order to transmit every pixel in the bit map for the image. The large quantity of information being transferred consumes a large portion of the resources of small computer systems and requires high-capacity communication links between the computer and the terminal. These features of laser printers result in the inefficient use of the potential output capacity of laser printers.
Typical page description languages ease the problem of generating images for output on a laser printer and prevent the overloading of computer systems and communications networks utilizing a laser printer. Page description languages allow the computer system to express an image of a page of information in a minimal amount of storage space.
Examples of application programs which generate page descriptions are word processors, illustrators, and computer aided design systems. Such an application program, as opposed to generating an output consisting of a complete bit map of the image to be printed out, generates an executable program consisting of instructions in the page description language to be sent to the printer. The instructions are executed at the printer to produce the page image.
The executable program written in the page description language consists of instructions interpreted by the printer for generation of raster scan or other bit map information usable by the print engine for generating the image. For example, in order to print a portion of text on a page, the application program generates instructions in page description language specifying the shape of the letters (i.e. the font), the size, the position, and the individual character designations. The laser printer uses these text parameters to generate a raster scan image of the specified text.
If graphic information is printed out, the application program specifies in page description language the boundaries of each image and specifies how the boundries are to be filled in, as opposed to specifying each individual pixel to be generated by the laser printer.
A variety of page description languages are conventionally used, including the PostScript.RTM. language published by Adobe Systems' Inc. and Interpress published by the Xerox Corporation.
The principal advantage of page description languages is the elimination of unwieldy pixel arrays which are difficult to manipulate or create for smaller systems running application programs.
Moreover, pixel arrays are usually generated for a particular printer device and therefore are device dependent. Utilization of a page description language enables an application program to provide output to a variety of laser printers without modifying the format of the data provided as output. The application program simply generates the same page description program regardless of the printer included in the computer system.
Laser printers equipped to utilize page description languages include an interpreter and a print engine. The interpreter is software which receives the page description language generated by the application program and reduces the high level page description language to a low level raster data format usable as input by the specific print engine. The interpreter is designed to translate any program written in a page description language into output data, which may be processed by the print engine or output device.
Desktop publishing consists of producing high quality documents that have a type set appearance utilizing a small computer system. In desktop publishing, printing is done by a laser an image through contact printing. Desktop publishing systems are one example of an application program taking advantage of page description languages. In desktop publishing, textual material and graphics may be combined into the same document on the same pages. However, once each page is defined, most desktop publishing systems do not allow for modification by printing out pages in altered formats to accommodate different document styles. For example, once a document has been formatted so that the pages print out one page to a sheet, there is usually no facility to change to a system where two pages may be printed on one sheet to conserve paper and facilitate binding.
Desktop publishing systems such as PageMaker by Aldus Corporation allow a user to construct sheets to be printed out having more than one page on the sheet. However, this formatting must be done while the document is being produced. Once the document is formatted in this manner, there is no provision to alter the output format.
In the prior art, there are simple programs written in page description languages enabling a user to print out more than one page on a single sheet without revising the entire document. These programs allow the user to print a predetermined number of pages on a single sheet. This capability of printing multiple pages onto a single sheet is referred to as "number-up" of pages. The page description programs offering "number-up" capability generally offer only the choice of printing certain combinations of pages onto a sheet such as two, four, or eight pages. Additionally, such programs lack the flexibility to adapt the program to randomly selected sizes of pages and sheets.
Therefore it is desirable to provide a method and apparatus which allows a user to print any desired combination of pages onto a sheet.